package ar.edu.caece.compiler.grammar.nonterminals;

import ar.edu.caece.compiler.grammar.terminals.DosPuntosToken;
import ar.edu.caece.compiler.grammar.terminals.FinParentesisToken;
import ar.edu.caece.compiler.grammar.terminals.FuncToken;
import ar.edu.caece.compiler.grammar.terminals.IdentifierToken;
import ar.edu.caece.compiler.grammar.terminals.InicioParentesisToken;
import ar.edu.caece.compiler.grammar.terminals.PuntoComaToken;

public class BLOQUE2 extends NonTerminalLogger implements BLOQUE{
	
	private FuncToken funcToken;
	private IdentifierToken identifierToken;
	private InicioParentesisToken inicioParentesisToken;
	private PARAMETROS parametros;
	private FinParentesisToken finParentesisToken;
	private DosPuntosToken dosPuntosToken;
	private TIPO tipo;
	private PuntoComaToken puntoComaToken;
	private ALTERF alterf;

	public BLOQUE2(FuncToken funcToken, IdentifierToken identifierToken,
			InicioParentesisToken inicioParentesisToken, PARAMETROS parametros,
			FinParentesisToken finParentesisToken,
			DosPuntosToken dosPuntosToken, TIPO tipo,
			PuntoComaToken puntoComaToken, ALTERF alterf) {
		super();
		this.funcToken = funcToken;
		this.identifierToken = identifierToken;
		this.inicioParentesisToken = inicioParentesisToken;
		this.parametros = parametros;
		this.finParentesisToken = finParentesisToken;
		this.dosPuntosToken = dosPuntosToken;
		this.tipo = tipo;
		this.puntoComaToken = puntoComaToken;
		this.alterf = alterf;
	}

	@Override
	public String getRepresentation() {
		// TODO Auto-generated method stub
		return "{"+this.getClass().getSimpleName()+" -> "+funcToken.getRepresentation()+" "+identifierToken.getRepresentation()+" "+inicioParentesisToken.getRepresentation()+" "+parametros.getRepresentation()
		+" "+finParentesisToken.getRepresentation()+" "+dosPuntosToken.getRepresentation()+" "+tipo.getRepresentation()+" "+puntoComaToken.getRepresentation()+" "+alterf.getRepresentation()+"}";
	}

	public FuncToken getFuncToken() {
		return funcToken;
	}

	public IdentifierToken getIdentifierToken() {
		return identifierToken;
	}

	public InicioParentesisToken getInicioParentesisToken() {
		return inicioParentesisToken;
	}

	public PARAMETROS getParametros() {
		return parametros;
	}

	public FinParentesisToken getFinParentesisToken() {
		return finParentesisToken;
	}

	public DosPuntosToken getDosPuntosToken() {
		return dosPuntosToken;
	}

	public TIPO getTipo() {
		return tipo;
	}

	public PuntoComaToken getPuntoComaToken() {
		return puntoComaToken;
	}

	public ALTERF getAlterf() {
		return alterf;
	}

}
